// This is a karma config file. For more details see
//   http://karma-runner.github.io/0.13/config/configuration-file.html
// we are also using it with karma-webpack
//   https://github.com/webpack/karma-webpack

var webpackConfig = require('../../build/webpack.test.conf')

module.exports = function karmaConfig (config) {
  config.set({
    // to run in additional browsers:
    // 1. install corresponding karma launcher
    //    http://karma-runner.github.io/0.13/config/browsers.html
    // 2. add it to the `browsers` array below.
    // 设置默认打开的浏览器
    browsers: ['ChromeHeadless'],
    // 启用或禁用输出报告或者日志中的颜色
    colors: true,
    // 启用或禁用自动检测文件变化进行测试
    autoWatch: false,
    // 可用的框架
    frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'],
    // 设置测试覆盖率输出插件
    reporters: ['spec', 'coverage'],
    // 测试入口文件
    files: ['./index.js'],
    // 用webpack解析，同时显示测试文件路径
    preprocessors: {
      './index.js': ['webpack', 'sourcemap']
    },
    //  设置运行完成是否自动退出
    singleRun: false,
    // 是否打印webpack打包信息
    webpackMiddleware: {
      noInfo: true
    },
    webpack: webpackConfig,
    // karma-coverage配置，配置测试覆盖率的输出目录及格式
    coverageReporter: {
      dir: './coverage',
      reporters: [
        { type: 'lcov', subdir: '.' },
        { type: 'text-summary' }
      ]
    },
    // 排除的文件列表
    exclude: [],
    // 日志等级
    // config.LOG_DISABLE 不输出信息
    // config.LOG_ERROR 只输出错误信息
    // config.LOG_WARN 只输出警告信息
    // config.LOG_INFO 输出全部信息
    // config.LOG_DEBUG 输出调试信息
    logLevel: config.LOG_INFO,
    // 并发级别
    // 启动的浏览器数
    concurrency: Infinity
  })
}
